
--[[
描述 ：滚动的TabView
作者 ： 付大志
时间 ： 15/11/02
]]
UIScrollTabView =  Class(MLView,'UIScrollTabView')
UIScrollTabView.barfontHeight 		= nil;			-- 字体高度
UIScrollTabView.barfontColor 		= nil;			-- 字体背景颜色
UIScrollTabView.barfontFocusColor 	= nil;			-- 字体聚集颜色
UIScrollTabView.cursorLineHeight 	= nil;			-- 游标线高
UIScrollTabView.cursorColor 			= nil;			-- 游标线颜色

UIScrollTabView.pageViews 			= nil;			--页面表
UIScrollTabView.tabViews				= nil;			--tab表
UIScrollTabView.curIndex 			= nil; 			--当前选中索引

UIScrollTabView.itemImage      = nil;     -- 导航按钮背景图片
UIScrollTabView.itemselImage  = nil;      -- 导航按钮选中图片
UIScrollTabView.itemfontHeight     = nil;    -- 字体高度
UIScrollTabView.itemfontColor      = nil;      -- 字体背景颜色
UIScrollTabView.itemfontFocusColor = nil;    -- 字体聚集颜色
UIScrollTabView.itemtextHeight     = 0;      --  问题高度
--[[
功能：	初始化 UIScrollTabView
参数：	width	宽度
		  height  高度
		  viewCtrl 所在ctrl
		  id 		空间id
返回：	UITabBarView视图类实例 
注： 	控件在onCreate面操作不需要手动调用控件刷新接口
		   添加id，系统帮助缓存控件数据，保证viewctrl恢复时，控件数据还在。
]]
function UIScrollTabView:init(width,height, tabHeight,viewCtrl,id )
  local deviceW, deviceH = viewCtrl.rootView:getWH();
  self.width = width or deviceW;
  self.height = height or deviceH;

  self.viewCtrl = viewCtrl;
  self:initView(width, height, viewCtrl, id);
  self.tabHeight = tabHeight or UITheme.NEWSSHOWVIEW_TAB_HEIGHT;
  self.tabWidth = width or deviceW;
  self.index = 1;
  self.items = {} ;
  
  self.itemImage = UIImage.imageName(UITheme.SCROLLTABVIEW_BGIMAGE);
  self.itemselImage = UIImage.imageName(UITheme.SCROLLTABVIEW_SEL_IMAGE) ;
  self.itemfontHeight     = UITheme.SCROLLTABVIEW_FONT_HEIGHT ;    -- 字体高度
  self.itemfontColor      =  UITheme.SCROLLTABVIEW_FONT_COLOR ;      -- 字体背景颜色
  self.itemfontFocusColor =  UITheme.SCROLLTABVIEW_FONT_COLOR_FOCUS ;    -- 字体聚集颜色
  
  self.tabViews = MLView.new():initView(width,self.tabHeight,viewCtrl);

  self:add(self.tabViews)

  self.viewPager = MLViewPager.new():initViewPager(width,height - self.tabHeight,viewCtrl);
  self.viewPager.onPageChange = function ( index )
    self:onPageChange(index);
  end

  self:add(self.viewPager,0, tabHeight);


  return self;
end
--[[
功能：	viewPager页面切换响应函数，当页面切换完成时，设置tabs的索引及视图为当前索引的。。。
参数：	index int:切换到的页面索引
返回：	无
]]
function UIScrollTabView:onPageChange( index )
  self.index = index;
  if self.tabViews == nil then return end
  for j,v in ipairs(self.items) do
    v.mIsSel = false;
    if j == index then
      v.mIsSel = true;
      if self.onClickEvent then
      self.onClickEvent(index);
      end
    end
    v:show();
  end
end

--[[
功能：	设置views
参数： 	动态 view
返回： 	无
注：	使用 setViews(view1, view2,....)    
]]
function UIScrollTabView:setViews( ... )

  if self.pageViews and #self.pageViews ~= 0 then
    self.pageViews = {};
    self.viewPager:delAllPage();
  end

  self.pageViews = arg;
  for i,v in ipairs(self.pageViews) do
    self.viewPager:addPage(v);
  end
end
--[[
功能：	设置TabBar 文字
参数： 	动态 字符串
返回： 	无
]]
function UIScrollTabView:setTabBarText( ... )
  if self.tabViews then
    self.tabViews:delAll();
  end

  local w =self.tabViews.mWidth / #arg;
  for i,v in ipairs(arg) do

    local  rb  = UIRadioButton.new():init(w, self.tabHeight, self.viewCtrl);
  
    rb.bgImage = self.itemImage ;
    rb.selImage = self.itemselImage;
    rb.fontFocusColor  = self.itemfontFocusColor ;
    rb.fontColor = self.itemfontColor;
    rb.fontHeight = self.itemfontHeight;
    rb.text = arg[i];
    if i==  self.index then
      rb.mIsSel = true;
    end
    rb.index = i;
    rb.tab = self;
    self.tabViews:add(rb, w*(i-1),0);
    self.items[i] = rb
    rb:show();
    rb.onClick = function ()
      self.index= rb.index;
      for j,v in ipairs(self.items) do
        v.mIsSel = false;
        if j == self.index then
          v.mIsSel = true;
        end
        if self.onClickEvent then
          self.onClickEvent(self.index);
        end
        self.viewPager:setCurPage(self.index );
        v:show();
      end
    end
  end
end
--[[
功能：	设置 选中索引
参数： 	index  索引
返回： 	无
]]
function UIScrollTabView:setSelItem( index )
  self.viewPager:setCurPage( index );
  self:onPageChange( index );
end
--[[
功能：	得到 选中索引
参数： 	无
返回： 	索引
]]
function UIScrollTabView:getSelItem( )

  return self.viewPager:getCurPage();
end
--[[
功能：	更新控件
参数： 	无
返回： 	无
注：	在以下任一情况下：
			1、本视图实例的viewCtrl为nil的时候；
			2、本视图实例的viewCtrl不为nil，但不是在viewCtrl:onCreate(...)函数中；
		通过'.'访问、更改本视图类的属性后，需调用此函数才能正常显示。
]]
function UIScrollTabView:update( )

  self.tabViews:show();
end
